/****************************************************************************
	This file is part of Basqet.

	Basqet is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	Basqet is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    along with Basqet.  If not, see <http://www.gnu.org/licenses/>.

****************************************************************************/

#ifndef CMDCHANGENOTEGEOMETRY_H
#define CMDCHANGENOTEGEOMETRY_H

#include <QUndoCommand>

#include <QPoint>
#include <QSize>
#include <QPointer>

class NoteData;

class CmdChangeNoteGeometry : public QUndoCommand
{
	public:
		CmdChangeNoteGeometry(NoteData* subject);

		void changeSize(const QSize& newSize);
		void changePos(const QPoint& newPlace);

		void redo();
		void undo();

	protected:

		NoteData*			subject() const;

	private:
		QPointer<NoteData>	mSubject;
		QPoint				mNewPlace;
		QPoint				mOldPlace;

		QSize				mNewSize;
		QSize				mOldSize;

};

#endif // CMDCHANGENOTEGEOMETRY_H
